<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script>

        /*
           在函数内，this关键字的指定具有不确定性

           使用 Function 对象中的 call、apply、bind函数，调用用户定义的函数，
           同时可以指定this关键字的指向
        
        */

        // function test01() {
        //     console.log(this);
        //     console.log("我是普通函数"); 
        // }
        // test01() ;


        // 自定义对象 - 用于测试，改变this的指向
        var stu = {
            name:'zs',
            age:18
        }

        function fun(a,b,c) {
            console.log("第一个参数：" + a);
            console.log("第二个参数：" + b);
            console.log("第三个参数：" + c);
            console.log(this);
        }

        // fun(1,2,3) ;

        // fun.call(stu,1,2,3) ;


        // fun.apply(stu,[1,2,3]) ;

        // 注意：bind调用并不会执行原函数
        // 复制原函数，并改变this的指向
        var fun_copy = fun.bind(stu,1,2,3) ;
        fun_copy() ;









        
        

        
        

                


    </script>







</body>
</html>